#ifndef INJECT_KIT_ORZ
#define INJECT_KIT_ORZ

#include <Windows.h>
#include <vector>

//unique id
#define INJECT_MEMORY_ID	"00484340166978069456"

class InjectKit
{
public:
	InjectKit(char* target);
	~InjectKit();

public:
	HMODULE	getModule(char* module = 0);

	int		load_dll(char* dllname);
	int		unload_dll(char* dllname = 0);
	
public:
	HANDLE	getHandle(){return targetHandle;}
	DWORD	getProcessID(){return targetProcessID;}
	void*	getMapMemory(){return mapMemory;}

public:
	int		CreateMapMemory(int size);

private:
	int		init(char* target);
	int		InjectError(char* message);
	void	clean();

private:
	char*	targetName;

	HANDLE	targetHandle;
	DWORD	targetProcessID;

	HANDLE	mapHandle;
	void*	mapMemory;

private:
	std::vector<char*> inject_dlls;
};
#endif